SEP 11 -- 长耗时接口处理
Head
- Author: larry
- Status: draft
- Type: Standards
- Created: 2017-11-08
摘要
部分接口的执行耗时很长,常规优化解决不了,需要把操作异步化处理,避免出现接口耗时很长,前端超时的情况。
策略
-
接口收到请求后立刻返回,告诉调用方任务执行中。
-
调用方有两种方式获得结果。
-
接口给调用方返回一个查询链接
调用方轮询获取结果。
接口可以在首次返回中给出建议轮询建议,包含:轮询间隔,总超时时长。只是建议值,前端可以接受也可以自行修改。
-
调用方在请求时给一个notify_url地址
接口对应的异步任务在执行完成后,通知notify_url。通知策略可以有多次。
-
-
查询接口和notify_url的参数协议建议做成通用的,不要让每个业务单独定义格式,每个业务用的时候只定义业务参数。
-
长任务提交到celery中处理。